package com.game.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.game.system.domain.game.GameAccount;

import java.util.List;

/**
 * 游戏账号Service接口
 *
 * @author Mr.Liu
 * @date 2025-03-18
 */
public interface IGameAccountService extends IService<GameAccount> {
    /**
     * 查询游戏账号
     *
     * @param id 游戏账号主键
     * @return 游戏账号
     */
    GameAccount selectGameAccountById(Long id);

    /**
     * 查询游戏账号列表
     *
     * @param gameAccount 游戏账号
     * @return 游戏账号集合
     */
    List<GameAccount> selectGameAccountList(GameAccount gameAccount);

    /**
     * 校验游戏账号是否唯一
     *
     * @param account 账号
     * @param gameId  游戏ID
     * @return 结果
     */
    boolean checkGameAccountUnique(String account, Long gameId);

    /**
     * 新增游戏账号
     *
     * @param gameAccount 游戏账号
     * @return 结果
     */
    int insertGameAccount(GameAccount gameAccount);

    /**
     * 修改游戏账号
     *
     * @param gameAccount 游戏账号
     * @return 结果
     */
    int updateGameAccount(GameAccount gameAccount);

    /**
     * 批量删除游戏账号
     *
     * @param ids 需要删除的游戏账号主键集合
     * @return 结果
     */
    int deleteGameAccountByIds(Long[] ids);

    /**
     * 删除游戏账号信息
     *
     * @param id 游戏账号主键
     * @return 结果
     */
    int deleteGameAccountById(Long id);

    /**
     * 获取游戏账号
     *
     * @param gameId 游戏ID
     * @param userId 用户ID
     */
    GameAccount selectGameAccount(Long gameId, Long userId);
}
